home *** CD-ROM | disk | FTP | other *** search
/ Gekkan Dennou Club 142 / Gekkan Dennou Club - 2000.3 Vol. 142 (Japan).7z / Gekkan Dennou Club - 2000.3 Vol. 142 (Japan) (Track 1).bin / tools / s_tool / picsave.h < prev    next >
Text File  |  1994-10-31  |  3KB  |  195 lines

  1. *    Local Macros,Constants and Variables for PICSAVE.ap
  2. *    written by GORRY.
  3. *    $Id: picsave.h,v 2.0.0.1 1994/10/31 12:07:29 GORRY Exp GORRY $
  4.  
  5.  
  6. *    *    *    *    *    *    *    *    *    *
  7. *    Macros.
  8.  
  9.  
  10. CheckDOSErr    macro
  11.         tst.l    d0
  12.         bmi    ExitPicSave
  13.         endm
  14.  
  15. BufTopReg        reg    d5
  16. CountRestBufReg        reg    d6
  17. BitCountReg        reg    d7
  18. BufPtrReg        reg    a6
  19.  
  20. CompressPtrReg        reg    a4
  21. ChainPtrReg        reg    a3
  22. WidthXReg        reg    d4
  23. LenReg            reg    d3
  24. ColorReg        reg    d2
  25.  
  26. *    *    *    *    *
  27. *    1ビットセット
  28.  
  29. SetBit:        macro
  30.         local    unWriteBuf,unPtrInc
  31.         dbra    BitCountReg,unPtrInc
  32.         moveq.l    #15,BitCountReg
  33.         move.w    BufTopReg,(BufPtrReg)+
  34.         subq.l    #2,CountRestBufReg
  35.         bne    unWriteBuf
  36.         bsr    WriteBuf
  37. unWriteBuf:
  38.         moveq.l    #0,BufTopReg
  39. unPtrInc:
  40.         bset    BitCountReg,BufTopReg
  41.         endm
  42.  
  43. *    *    *    *    *
  44. *    1ビットクリア
  45.  
  46. ClrBit:        macro
  47.         local    unWriteBuf,unPtrInc
  48.         dbra    BitCountReg,unPtrInc
  49.         moveq.l    #15,BitCountReg
  50.         move.w    BufTopReg,(BufPtrReg)+
  51.         subq.l    #2,CountRestBufReg
  52.         bne    unWriteBuf
  53.         bsr    WriteBuf
  54. unWriteBuf:
  55.         moveq.l    #0,BufTopReg
  56. unPtrInc:
  57.         endm
  58.  
  59. *    *    *    *    *
  60. *    nビット書き込み
  61.  
  62. WriteBits:    macro    BitLen,Operand
  63.         local    unWriteBuf,unPtrInc
  64.         sub.w    BitLen,BitCountReg
  65.         rol.l    BitCountReg,Operand
  66.         or.l    Operand,BufTopReg
  67.         tst.w    BitCountReg
  68.         bpl    unPtrInc
  69.         add.w    #16,BitCountReg
  70.         move.w    BufTopReg,(BufPtrReg)+
  71.         subq.l    #2,CountRestBufReg
  72.         bne    unWriteBuf
  73.         bsr    WriteBuf
  74. unWriteBuf:
  75.         clr.w    BufTopReg
  76.         swap    BufTopReg
  77. unPtrInc:
  78.         endm
  79.  
  80.  
  81. *    *    *    *    *    *    *    *    *    *
  82. *    Constants.
  83.  
  84.  
  85. SizeOfAuthorBuf        =    256+1
  86.  
  87.  
  88. *    *    *    *    *    *    *    *    *    *
  89. *    Local Structures.
  90.  
  91.  
  92.         .offset    0
  93. SColorTable_Col:    dc.w    1
  94. SColorTable_Next:    dc.w    1
  95. SColorTable_Prev:    dc.w    1
  96. SColorTable_Dummy:    dc.w    1        *8の倍数にしておくと計算が楽
  97. SColorTableSize:
  98.         .text
  99.  
  100.  
  101. *    *    *    *    *    *    *    *    *    *
  102. *    Local Variables.
  103.  
  104.  
  105.         .ifdef    MOVEOFFSET
  106. LocalOffset:    equ    1024*4
  107.         .else
  108. LocalOffset:    equ    0
  109.         .endif
  110.  
  111.  
  112.         .offset    LocalOffset
  113.  
  114. LocalStart:
  115.  
  116. @@ColorTable:        ds.w    SColorTableSize*128
  117. @@ColorTable_TopPtr:    ds.w    1
  118.  
  119. @@SaveBufPtr:        ds.l    1
  120. @@FileBufPtr:        ds.l    1
  121. @@FileNamePtr:    ds.l    1
  122. @@CompressPtr:    ds.l    1
  123. @@CommentBufPtr:    ds.l    1
  124. @@Stack:        ds.l    1
  125. @@FileBufSize:    ds.l    1
  126. @@Flag:        ds.l    1
  127.  
  128. @@FileHandle:        ds.w    1
  129. @@SaveX1:        ds.l    1
  130. @@SaveY1:        ds.l    1
  131. @@SaveX2:        ds.l    1
  132. @@SaveY2:        ds.l    1
  133. @@SizeX:        ds.w    1
  134. @@SizeY:        ds.w    1
  135. @@NextOffsetX:    ds.w    1
  136. @@LineSize:        ds.w    1
  137.  
  138. @@CRTC_R20_Back:    ds.b    1
  139. @@UnSaved_Flag:    ds.b    1
  140.  
  141.         .even
  142. @@AuthorBuf:        ds.b    SizeOfAuthorBuf
  143.  
  144.         .even
  145. LocalEnd:
  146. LocalSize:    equ    LocalEnd-LocalStart
  147.  
  148.  
  149.         .text
  150.  
  151.  
  152. *    *    *    *    *    *    *    *    *    *
  153. *    Local Buffers.
  154.  
  155.  
  156.         .bss
  157.         .even
  158.  
  159.  
  160.         .even
  161.         .text
  162.  
  163.  
  164. *    *    *    *    *    *    *    *    *    *
  165. *    Local Variables' buffers.
  166.  
  167.  
  168.     .if    0        *スタック上に採るので必要ない
  169.         .bss
  170.         .even
  171.  
  172. Local:
  173.         ds.b    LocalSize
  174.  
  175.         .even
  176.         .text
  177.     .endif
  178.  
  179.  
  180. *    *    *    *    *    *    *    *    *    *
  181.  
  182.  
  183.  
  184.  
  185. *    *    *    *    *    *    *    *    *
  186. *    このファイルはパブリック・ドメインとなっています。    *
  187. *    改造・再配布・使用について必要な条件はありません。    *
  188. *    また、このファイルの使用による責務を作者である        *
  189. *    GORRYは負わないこととします。                *
  190. *    *    *    *    *    *    *    *    *
  191.  
  192.  
  193.  
  194.  
  195.